package log

import (
	"encoding/json"
	"time"

	"gitee.com/xgotool/backend-framework-template/config"
	"gitee.com/xgotool/backend-framework-template/model"
)

// 用户相关日志记录
//
//	log.user	<model.UserLog>
func User(param []byte) error {
	mod := model.UserLog{}
	err := json.Unmarshal(param, &mod)
	if err != nil {
		return err
	}
	if mod.Id > 0 {
		mod.Id = 0
	}
	if mod.Time == 0 {
		mod.Time = time.Now().Unix()
	}
	conn, err := config.GetConnect()
	if err != nil {
		return err
	}
	conn.Table(mod.TableName()).Create(&mod)
	// 如果是登录操作，则记录一下登录时间
	if mod.Type == 1 && mod.Msg == "" && mod.Uid > 0 {
		u := model.User{}
		conn.Table(u.TableName()).Where("id", mod.Uid).Where("status", 1).Update("last_login", mod.Time)
	}
	return nil
}
